package com.sajus.billing.client.delegate;

import java.util.List;

import com.sajus.billing.client.dto.AccountAttributeDTO;
import com.sajus.billing.client.dto.AccountDTO;
import com.sajus.billing.client.dto.BillDTO;
import com.sajus.billing.client.dto.BillItemDTO;
import com.sajus.billing.client.dto.ServiceDTO;
import com.sajus.billing.client.dto.UsageDataDTO;

public interface IAccountManager {
	
	List<AccountDTO> getSubAccounts( AccountDTO parent );
	AccountDTO getAccount( Integer accountID );
	List<AccountAttributeDTO> getAccountAttributes( AccountDTO account );
	BillDTO getBill( AccountDTO account );
	BillItemDTO getBillItem( Integer id );
	
	
	void createBill( AccountDTO account );
	void createAccount( AccountDTO account );
	void saveAccount( AccountDTO account );
	void saveAccountAttribute( AccountAttributeDTO aa );
	void createBillItem( ServiceDTO service );
	
	List<AccountDTO> getAccounts();
	List<UsageDataDTO> getUsageDataList( AccountDTO account );
	
	List<BillDTO> getBills( Integer id ) ;
	
	void setBillFeeAmount( AccountDTO acct );

}
